package com.ck.ips.service.program;

import com.ck.common.model.ProgramDevice;
import com.ck.ips.model.vo.program.ProgramDeviceBasicInfoVO;
import com.ck.ips.model.vo.program.ProgramStatisticsInfoVO;

import java.util.List;

/**
 * @author LinQiang
 * @version 1.0
 * @Description 节目终端关联Service
 * @date 2019/4/29 14:24
 **/
public interface ProgramDeviceService {

    /**
     * 批量新增
     *
     * @param programDeviceList
     * @return 影响行数
     */
    int batchInsert(List<ProgramDevice> programDeviceList);

    /**
     * 根据节目版本号查询设备基础信息
     *
     * @param programVersion 节目版本号
     * @return List
     */
    List<ProgramDeviceBasicInfoVO> listDeviceBasicInfoByProgramVersion(String programVersion);

    /**
     * 根据节目版本号统计终端数量和终端组数量
     *
     * @param programVersion 节目版本号
     * @return ProgramInfoCountVO
     */
    ProgramStatisticsInfoVO countDeviceAndGroupByProgramVersion(String programVersion);

    /**
     * 新增
     *
     * @param programDevice 数据
     * @return 影响行数
     */
    int insert(ProgramDevice programDevice);

    /**
     * 批量删除
     *
     * @param programVersionList 节目版本号
     * @param deviceCodeList 设备序列号
     */
    void batchDelete(List<String> programVersionList, List<String> deviceCodeList);

    /**
     * 根据节目版本号查询
     *
     * @param programVersion 节目版本号
     * @return List
     */
    List<ProgramDevice> list(String programVersion);
}